function md5(text) {
    return CryptoJS.MD5(text).toString();
}
function sha1(text) {
    return CryptoJS.SHA1(text);
}
function sha256(text) {
    return CryptoJS.SHA256(text);
}
function sha512(text) {
    return CryptoJS.SHA512(text);
}
function hmac(text, key, mode, base64) {
    var a = CryptoJS.algo.HMAC.create(CryptoJS.algo[mode], key);
    a.update(text);
    var hash = a.finalize();
    if (base64) return hash.toString(CryptoJS.enc.Base64);
    return hash.toString(CryptoJS.enc.Hex)
}
function encodeAES(text, key, iv, mode, padding) {
    var a = CryptoJS.AES.encrypt(
        text,
        CryptoJS.enc.Utf8.parse(key),
        {
            iv: CryptoJS.enc.Utf8.parse(iv),
            mode: CryptoJS.mode[mode || "CBC"],
            padding: CryptoJS.pad[padding || "Pkcs7"]
        });
    return a.ciphertext.toString(CryptoJS.enc.Base64);
}
function decodeAES(text, key, iv, mode, padding) {
    var a = CryptoJS.AES.decrypt(
        text,
        CryptoJS.enc.Utf8.parse(key),
        {
            iv: CryptoJS.enc.Utf8.parse(iv),
            mode: CryptoJS.mode[mode || "CBC"],
            padding: CryptoJS.pad[padding || "Pkcs7"]
        });
    return a.toString(CryptoJS.enc.Utf8);
}
function encodeBase64(text) {
    return CryptoJS.enc.Base64.stringify(text);
}
function decodeBase64(text) {
    return CryptoJS.enc.Base64.parse(text);
}
function encodeRsa(text, key) {
    let a = new JSEncrypt.JSEncrypt();
    a.setPublicKey(key);
    return a.encrypt(text);
}
function decodeRsa(text, key) {
    let a = new JSEncrypt.JSEncrypt();
    a.setPrivateKey(key);
    return a.decrypt(text);
}
